【NOIP】单词接龙

您所在的位置:网站首页 单位 单词接龙 【NOIP】单词接龙

【NOIP】单词接龙

2024-07-14 03:37| 来源: 网络整理| 查看: 265

【NOIP】单词接龙

题目

题目描述

单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at 和 atide 间不能相连。

输入格式

输入的第一行为一个单独的整数n (0n≤20)表示单词数,以下n 行每行有一个单词,输入的最后一行为一个单个字符,表示“龙”开头的字母。你可以假定以此字母开头的“龙”一定存在.

输出格式

只需输出以此字母开头的最长的“龙”的长度

输入输出样例

输入 #1 复制 5 at touch cheat choose tact a 输出 #1 复制 23

说明/提示

(连成的“龙”为atoucheatactactouchoose)

NOIp2000提高组第三题

分析

这题看了好多大佬的解法,感觉这个比较好懂,而且超级超级详细。(就直接上大佬解法。。。。。。。。。)

在这里插入图片描述 在这里插入图片描述

代码

大佬的代码。。

#include #include #include #include #define maxn 100 using namespace std; int n; int ans = 0; string word[maxn];//字符串数组,用来存储单词 string beginn;//用来存储开头字符 int used[maxn];//这个就是用来记录dfs时候每一个单词被使用了几次的数组 bool check(string s,string m,int k){//重点一,check函数判断接口可行性,k代表接口长度,以下同 int lens = s.length(); for (int i=0;i word[i]; cin >> beginn; dfs(beginn); cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3